//#include <iostream>
//#include <vector>
//using namespace std;
//
//int main() {
//    vector<int> v;
//    for (int i = 2; i < 1000; i++)
//    {
//        int flag = 0;
//        for (int j = 2; j <= i / 2; j++)
//        {
//            if (i % j == 0)
//            {
//                flag = 1;
//                break;
//            }
//        }
//        if (flag == 0)
//            v.push_back(i);
//    }
//    for (int i = 0; i < v.size(); i++)
//    {
//        cout << v[i] << " ";
//    }
//    cout << endl;
//}

#include <iostream>
#include <vector>
#include <climits>
using namespace std;

vector<int> prime_number()
{
    vector<int> v;
    for (int i = 2; i < 1000; i++)
    {
        int flag = 0;
        for (int j = 2; j <= i / 2; j++)
        {
            if (i % j == 0)
            {
                flag = 1;
                break;
            }
        }
        if (flag == 0)
            v.push_back(i);
    }
    return v;
}

int main() {
    vector<int> v = prime_number();

    int n = 0;
    cin >> n;
    int left = 0;
    int right = 0;
    vector<int> ret;
    while (v[right++] < n);
    right--;

    while (left <= right)
    {

        if (v[left] + v[right] > n)
        {
            right--;
        }
        else if (v[left] + v[right] < n)
        {
            left++;
        }
        else
        {
            ret.push_back(v[left++]);
            ret.push_back(v[right--]);
        }
    }
    if (!ret.empty())
    {
        cout << ret[ret.size() - 2] << endl;
        cout << ret[ret.size() - 1] << endl;
    }

}

class BinInsert {
public:
    int binInsert(int n, int m, int j, int i) {
        m <<= j;
        n |= m;
        return n;
    }
};